package com.mcxx.modules.miniSalvation.order.dao.read;

import com.mcxx.modules.BaseParam;
import com.mcxx.modules.miniSalvation.check.dto.CheckFamilyDTO;
import com.mcxx.modules.miniSalvation.check.dto.IntegrateCheckDTO;
import com.mcxx.modules.miniSalvation.check.dto.ProResultDTO;
import com.mcxx.modules.miniSalvation.check.dto.QueryCheckDTO;
import com.mcxx.modules.miniSalvation.family.dto.*;
import com.mcxx.modules.miniSalvation.family.param.ProvertyObjectParam;
import com.mcxx.modules.miniSalvation.family.param.SalvationFamilyParam;
import com.mcxx.modules.miniSalvation.family.param.SalvationObjectParam;
import com.mcxx.modules.miniSalvation.order.dto.*;
import com.mcxx.modules.miniSalvation.order.param.*;
import com.mcxx.modules.miniSalvation.order.entity.OrderEntity;
import com.mcxx.modules.miniSalvation.welfare.param.WelfareParam;
import com.mcxx.modules.nopage.dto.JHSalvationEFileDTO;
import com.mcxx.modules.nopage.dto.MiniSalvationEFileYHDTO;
import com.mcxx.modules.system.dto.AuditConfirmListDTO;
import com.mcxx.modules.system.dto.PdfApproveDTO;
import com.mcxx.modules.system.dto.PdfApproveDetailDTO;
import com.yinhai.ta404.module.mybatis.mapper.Ta404SupportMapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;



public interface OrderReadDao extends Ta404SupportMapper {


	OrderEntity getById(String orderId);


	List<OrderEntity> getByIdList(List<String> idList);


	List<OrderFamilyDTO> getOrderFamilyByOrderIdList(List<String> orderIdList);


	List<OrderListDTO> getTownSalvationTodoList(OrderListSearchParam param);


	List<OrderListDTO> getApplyTodoList(OrderListSearchParam param);


	List<OrderListDTO> queryNoFinishOrderCounty(OrderListSearchParam param);


	List<OrderListDTO> listFinishedOrderTown(OrderListSearchParam param);


	List<OrderListDTO> listFinishedOrderCounty(OrderListSearchParam param);


	OrderEntity getOrderById(String orderId);


	List<OrderEntity> queryOrderByIds(String[] ids);


	OrderSalaryDTO getSalaryInfoById(String orderId);


	ExOrderSalaryDTO getExSalaryInfoById(String orderId);


	OrderSalaryDTO getSalaryInfo(String orderId);


    List<OrderListDTO> listRecheckFamily(RecheckOrderQueryParam param);


	OrderListDTO getRecheckFamilyCount(RecheckOrderQueryParam param);


	String getIdBySourceId(String sourceId);

	String getDataBySourceId(String sourceId);


	List<OrderSimpleDTO> queryRecheckFamily(OrderListSearchParam param);


	List<OrderSimpleDTO> querySelectRecheckFamily(OrderListSearchParam param);


	List<OrderListDTO> getTownRecheckTodoList(RecheckOrderQueryParam param);

	List<RechckToDoOrderListExcelDTO> exportTownRecheckTodoList(RecheckOrderQueryParam param);


	List<OrderListDTO> getCountRecheckTodoList(RecheckOrderQueryParam param);

	List<RechckToDoOrderListExcelDTO> exportCountRecheckTodoList(RecheckOrderQueryParam param);

	List<OrderSimpleDTO> listRecheckResult(RecheckParam param);


	List<OrderSimpleExcelDTO> exportRecheckResult(RecheckParam param);



	OrderDTO getStateAndVersion(String orderId);


	List<OrderDTO> getStateAndVersions(List<String> orderIdList);


	List<OrderDTO> getCanSendCheckOrder(List<String> orderIdList, String preBizState, String notEqBizState);


	int cntByOrderAndBizState(String orderId, String bizState);


	int cntByBizState(String orderId, String preBizState);


	String getBizStateByBizStateRange(String orderId, String preBizState);


	List<SalvationFamilyDTO> getSalvationFamilyList(SalvationFamilyParam param);


	List<SalvationFamilyDTO> getAreaMoveFamilyList(MoveAreaParam param);

	List<SalvationFamilyExcelDTO> exportAreaMoveFamilyList(MoveAreaParam param);



	List<SalvationObjectDTO> getSalvationObjectList(SalvationObjectParam param);


	List<ProvertyObjectDTO> getProvertyObjectList(ProvertyObjectParam param);


	List<SalvationFamilyDTO> getSupplyFamilyList(SalvationFamilyParam param);


	List<SalvationObjectDTO> getSupplyObjectList(SalvationObjectParam param);

	List<SalvationObjectDTO> getSupplyObjectListNotAdded(SalvationObjectParam param);


	List<ExInsuranceDetailsDto> getIncludeObjs(InsuranceParam param,Date startTime,Date endTime);





    List<SalvationObjectDTO> getInsuranceObj(SalvationObjectParam param);



	List<SalvationObjectDTO> getSalvationObjectListByIds(@Param("objIds") List<String> objIds,@Param("startTime") Date startTime,@Param("endTime") Date endTime);


	List<ProvertyObjectDTO> getExtProvertyObjectList(ProvertyObjectParam param);


    List<SalvationFamilyDTO> getSalvationFamilyList4BatchStop(SalvationFamilyParam param);


	OrderEntity getOrderByFamilyIdAndCommitDate(@Param("familyId") String familyId,@Param("commitDate") Date commitDate);


    List<String> listRecheckOrderId(List<String> orderIds);


	List<CustomFundDTO> queryAllInNoBank(SalvationObjectParam param);


	List<CustomFundDTO> queryCustomByAllMem(SalvationObjectParam param);


	List<CustomFundDTO> queryCustomByAllDate(SalvationObjectParam param);


    MininumLivingApplyDTO getFinishedOrderDetailById(String orderId);


	Integer countOrderByStatus(WelfareParam welfareParam);


    Map getFamilyCountSummary(SalvationFamilyParam param);


	Map getSupplyFamilyCountSummary(SalvationFamilyParam param);


	int getSaveMemberNumber(String orderId);


	List<String> getIdByNotEqBizState(List<String> orderIdList, String notEqBizState);


    OrderEntity getLatestFinishedOrder(String idcard);


	List<ExMemberExcelDto> exportExRescueFamilyList(SalvationObjectParam param);


	List<ExMemberExcelNewDto> exportExRescueList(SalvationFamilyParam param);


	List<ExMemberExcelDto> exportExRescueMemberList(SalvationObjectParam param);


	List<MiniMemberExcelDto> exportMiniRescueFamilyList(SalvationObjectParam param);

	List<MiniMemberExcelNewDto> exportMiniRescueList(SalvationFamilyParam param);


	List<MiniMemberExcDto> exportMiniRescueMemberList(SalvationObjectParam param);


    List<Map> countBacklog(BaseParam param);


	List<Map> countMiniBacklog(BaseParam param);


	String getBizStateById(String id);


	String getStateById(String id);


    List<OrderEntity> listAnyTodoByIdCard(String idcard);


	List<OrderEntity> listAnyNotExpireOrderByIdCard(String idcard);


    MininumLivingApplyDTO getOrderDetailById(String id);


    OrderEntity getOrderStateById(String orderId);


	Map getObjectCountSummary(SalvationObjectParam param);


	Map getSupplyObjectCountSummary(SalvationObjectParam param);


	List<String> getExistNoFinishIdcard(List<String> idcardList);


	List<ProResultDTO> getProResult(List<String> idList);

	List<CheckFamilyDTO> getCheckInfo(List<String> list);

	List<CheckFamilyDTO> getCheckInfoByHistory(List<String> list);

	List<QueryCheckDTO> selectCheckParam(List<String> list);

	Integer selectIsCalSalary(String orderId);


	OrderStateVerifyDTO getBizStateReportFile(String orderId);


	List<OrderStateVerifyDTO> getBizStateReportFileList(List<String> orderId);


	List<OrderStateVerifyDTO> getBizStateReportFileNotice(@Param("batchNoList") List<String> batchNoList, @Param("orderTableName") String orderTableName);


    String getOrderObjKey(String orderId);


	List<String> cntFileObjId(List<String> list);


	int selectFinishOrderCurMonth(OrderListSearchParam param);


	int selectInhouseOrderCurMonth(OrderListSearchParam param);

	NoticeDTO selectNoticeInfo(String orderId, String orgId);

	String selectAgentIdCardById(String orderId);


	String queryStateByFmIdcard(@Param("idcard") String idcard, @Param("businessType") String businessType, @Param("areacode") String areacode);

	String queryLowerStateByIdcard(@Param("idcard") String idcard, @Param("areacode") String areacode);

	int selectOrderInCalculate(String orderId);

	OrderEntity selectInfoByIdCard(@Param("idcard") String idcard, @Param("businessType") String businessType);

	List<OrderEntity> selectInfoByIdCards(List<String> idcardList, @Param("businessType") String businessType);


	OrderEntity selectInfoMinByIdCard(@Param("idcard") String idcard, @Param("businessType") String businessType);

	List<OrderEntity> selectInfoMinByIdCards(List<String> idcardList, @Param("businessType") String businessType);


	List<OrderListExcelDTO> exportListTown(OrderListSearchParam param);


	List<OrderListExcelDTO> exportListCounty(OrderListSearchParam param);


	List<OrderListExcelExDTO> exportListExTown(OrderListSearchParam param);


	List<OrderListExcelExDTO> exportListExCounty(OrderListSearchParam param);

	List<OrderListPendingExcelDTO> exportTownSalvation(OrderListSearchParam param);


	List<OrderListCPendingExcelDTO> exportCountySalvation(OrderListSearchParam param);


	String selectStandByFamilyId(String familyId);


	List<PdfApproveDTO> findPdfInfo(String operateType,String businessType,String orderId,String yearMon,String areaCode);


	List<PdfApproveDetailDTO> findPdfInfoDetail(List<String> list);


	int getByIdCount(String id);


	MiniSalvationEFileYHDTO getMiniSalvationEFileYHDTOInfo(String orderId);



	MiniSalvationEFileYHDTO getNewMiniSalvationEFileYHDTOInfo(String orderId);


	MiniSalvationEFileYHDTO selectFinancialByOrderId(@Param("orderId") String orderId);


	MiniSalvationEFileYHDTO selectSalaryByOrderId(@Param("orderId") String orderId);


	List<MiniSalvationEFileYHDTO.FamilyMemberInfo> getFamilyMemberInfo(String orderId, String tempType);


	List<MiniSalvationEFileYHDTO.SupportPeopleInfo> getSupportPeopleInfo(String orderId);


	List<MiniSalvationEFileYHDTO.SurveyFamilyMemberInfo> getSurveyFamilyMemberInfo(String orderId, String tempType);


	List<MiniSalvationEFileYHDTO.SurveySupportPeopleInfo> getSurveySupportPeopleInfo(String orderId);


	List<MiniSalvationEFileYHDTO.ApplyFamilyBuildingsInfo> getApplyFamilyBuildingsInfo(String orderId);


	List<IntegrateCheckDTO> getIntegrateCheckInfo(List<String> list);


    int getPauseFamilyCount(SalvationFamilyParam param);


	int getPauseMemberCount(SalvationObjectParam param);

	List<String> selectFamilyIdInBusiness(List<String> list);

	AuditConfirmListDTO selectAuditConfirmListDTO(String orderId);

	OrderEntity getStartDateBySourceId(String orderId);

    int	selectOrderNoReason(String orderId);

	OrderEntity selectLowerOrder(String orderId);


	SalvationFamilyDTO getOrderFamilyInfo(String orderId);

	MemberCardRtnDTO selectLowerOrderByCardId(String idcard);


	OrderEntity getApplyTodoInfo(@Param("idCard") String idCard, @Param("businessType") String businessType, @Param("areaCode") String areaCode);
}

